Computers are known to include a central processing unit ("CPU"), cache memory, hard drive memory, disk memory, video graphics circuitry, and audio processing circuitry. The video graphics circuitry is operably coupled to a computer screen such that images, objects, and/or scenes, which the CPU has processed and/or generated, may be displayed. Such images, objects, and/or scenes, are stored as a plurality of triangles, where the number of triangles varies greatly depending on the object, image, and/or scene. For example, if a square is being presented, it may be represented by two triangles, while a human face may include more than 20,000 triangles. Each triangle of an object, image, and/or scene, has associated therewith vertex parameters which include Red, Green, and Blue ("RGB") parameters, X, Y, and Z parameters, texture parameters ("STW") and/or alpha parameters. The RGB parameters indicate the particular color at a given vertex of a triangle; the X and Y parameters indicate the particular location of the vertex in two-dimensional space of the computer screen; the texture parameters indicate the texture being applied to the triangle; and the alpha parameters indicates the translucency of the triangle.
A scene may be altered by adding visual effects to the scene such that it may be portrayed in different veins. For example, assume that a scene of a city alley is being presented on the computer screen which may be portrayed in different veins depending on the time of day. If the time of day is noon, the alley should be bright, but, if the time of day is midnight, the alley should be dark. To render the noontime effects of the alley, a noontime texture map is rendered with the image data of the alley. Similarly, to render the midnight effects on the alley, a midnight texture map is rendered with the image data of the alley.
If the alley scene is to be displayed for a different time of day, the computer could store a texture map for each different time of day. Thus, for the particular time of the day, the computer would retrieve the appropriate time of day texture map and render it with the image data of the alley. While this technique works, it is somewhat impractical due to the amount of memory it would take to store so many time of day texture maps. To overcome this impractical memory requirement, most video graphics circuits only stores the noon time and midnight texture maps. When the visual effects for a different time of day are desired, the image data is first rendered with the noontime (or midnight) texture map, where the resulting pixel information is stored in the frame buffer. Having done this, the frame buffer is read and the retrieved pixel information is rendered with the midnight (or noontime) texture map to achieve the desired affect. Once the final pixel information is rendered, it is stored in the frame buffer and subsequently displayed.
Thus, to render a scene with two texture maps to achieve a combined effect, the CPU and/or the video graphics circuitry is required to write pixel information into the frame buffer twice, which adds traffic to the data and address buses. By increasing the traffic on the data and address buses, the overall efficiency of the computer is reduced. This problem is even greater when more than two texture maps are used to render the scene.
Therefore, a need exists for a method and apparatus that has the CPU and/or the video graphics circuitry rendering pixel information into the frame buffer only once, regardless of how many texture maps are used to render a particular image, object, and/or scene.